/*
*   Copyright: Fabian Hajek (2012)  Programmieren: C   -   Semesterarbeit WS 2011/2012
*
*   Projekt: Schreinerei.exe
*
*   Author: $Author: webmaster@die-schwarzen-schwaben.de $
*
*   Name: func_order.c
*   URL:    $URL: http://semesterarbeit-wi-11-12.googlecode.com/svn/trunk/Semesterarbeit2/Schreinerei/Funktionen/func_order.c $
*
*   Description:   Beeinhaltet die new_order-Funktion
*
*   Last update:    $Date: 2012-02-24 21:45:10 +0000 (Fri, 24 Feb 2012) $
*
*   Rev:      $Rev: 56 $
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


/*INCLUDE input functions*/
#include "../default/structures.h"
#include "../Definitionen/define.h"
#include "func_order.h"

void new_order()
{
    char buf[30];
    int z,i;
    HEAD
    printf("\n%29sNEUEN AUFTRAG SPEICHERN%29s"," "," ");
    printf("\nBitte Schrank ausw\x84 \bhlen:\n\n");

    z = 0;
    p_schrank = p_schrank_end;
    while(p_schrank)
    {
        p_schrank_ar[z] = p_schrank;
        z++;
        printf("%d. %s\n",z,p_schrank->name);
        p_schrank = p_schrank->prev_schrank;
    }

    fgets(buf,3,stdin);
    sscanf(buf,"%d",&i);
    fflush(stdin);

    while(i>z || i<1)               /*Eingabe gueltig?*/
    {
        printf("Die Eingabe war ung\x81ltig: ");
        fgets(buf,3,stdin);
        sscanf(buf,"%d",&i);
        fflush(stdin);
    }

    /*Wieviele Zeiteinheiten werden benoetigt?*/
    z = 0;
    steps_quantity = 0;
    while(p_schrank_ar[i-1]->steps_quantity[z])
    {
        /*Wieviele Zeiteinheiten benoetigt dieser Schritt?*/
        p_step = p_schrank_ar[i-1]->p_steps[z];
        steps_quantity += p_step->time * p_schrank_ar[i-1]->steps_quantity[z];
        z++;
    }

    if(p_order_end)         /*Es existiert bereits mind 1 Auftrag*/
    {
        ORDER *p_order_new = (ORDER *)malloc(sizeof(ORDER));
        p_order_end->next_order = p_order_new;
        p_order_end = p_order_new;
    }
    else
    {
        p_order_end = (ORDER *)malloc(sizeof(ORDER));
        p_order_start = p_order_end;
    }

    p_order_end->next_order = 0;
    p_order_end->id = p_schrank_ar[i-1];
    p_order_end->status = 0;
    p_order_end->steps_quantity = steps_quantity;


    printf("\nAuftrag erfolgreich gespeichert.\n");
    log("\nNeuer Auftrag wurde angelegt",0,1);

    ORDER * test = p_order_start;
}
